package cn.csc.module.pay.dal.dataobject.jzbsuborder;

import cn.csc.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.math.BigDecimal;
import java.math.BigInteger;

/**
 * 见证宝子订单信息 DO
 *
 * @author liuchuang
 */
@TableName("pay_jzb_sub_order")
@KeySequence("pay_jzb_sub_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PayJzbSubOrderDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId
    private BigInteger id;
    /**
     * 商户编号
     */
    private BigInteger merchantId;
    /**
     * 见证宝订单号
     */
    private BigInteger jzbOrderId;

    /**
     * 0:直销 5:分账 7:分账(内部订单)
     */
    private Integer orderType;

    /**
     * 第三方用户ID
     */
    private String appUserId;

    /**
     * 商品子订单ID
     */
    private BigInteger orderItemId;

    /**
     * 商品spu ID
     */
    private BigInteger spuId;

    /**
     * 见证宝订单状态(0待冻结，1冻结成功 2冻结失败,3冻结撤销成功 4冻结撤销失败 5分账成功 6分账失败 7分账撤销成功 8分账撤销失败 9订单日清算未完成 10冻结撤销中 11分账中 12分账撤销中)
     */
    private Integer orderStatus;
    /**
     * 冻结充值交易流水号,用于KFEJZB6273查询交易终态
     */
    private String rechargeSeqNo;
    /**
     * 冻结充值子订单信息
     */
    private String rechargeOrders;
    /**
     * 冻结充值撤销交易流水号
     */
    private String rechargeCancelSeqNo;
    /**
     * 冻结充值撤销子订单信息
     */
    private String rechargeCancelOrders;
    /**
     * 冻结充值撤销总金额
     */
    private BigDecimal rechargeTotalAmount;
    /**
     * 分账交易流水号
     */
    private String subAcctSeqNo;
    /**
     * 分账子订单信息
     */
    private String subAcctOrders;
    /**
     * 分账撤销交易流水号
     */
    private String subAcctCancelSeqNo;
    /**
     * 分账撤销子订单信息
     */
    private String subAcctCancelOrders;
    /**
     * 分账撤销总金额
     */
    private BigDecimal subAcctTotalAmount;

}
